﻿using System;
using System.Collections.Generic;
using System.Text;

namespace EventBus
{
    public interface IEventStore
    {
    
        void Add(Type eventType, IEventHandlerFactory factory);

        void Remove(Type eventType, IEventHandler eventHandler);
        void Remove<TEventData>(Action<TEventData> action) where TEventData : IEventData;

   


     
        void RemoveAll(Type eventType);




        IDictionary<Type, IEventHandlerFactory[]> GetHandlers(Type eventType);
    }
}
